During recent years there has been a strong move in the marketplace towards the use of virtualization technologies. Among other capabilities, virtualization allows one to run unmodified legacy operating systems and applications on new hardware platforms using Virtual Machines (VMs). This is realized through on-the-fly translation from one hardware instruction set to another with the assistance of a so-called hypervisor or Virtual Machine Monitor (VMM). The VMM type considered here runs in the most privileged mode of a system and has full control over all vital system resources. A VMM-based system not only allows instruction translation but also, more importantly, increased system utilization as multiple VMs can run simultaneously on a single powerful hardware platform, opening for new business models and a new business landscape. This implies, for example, that existing services rather easily can be migrated into large and dynamic computing clusters, what often is referred to as “the cloud”.
The cloud model where the customer is allowed to run a complete VM, including operating system, is often referred to as the Infrastructure as a Service (IaaS).
The new flexibility however has a price: increased security risks. Previously, physically isolated software systems might now run in VMs on the same physical node as other, completely unrelated, VMs. This allows for new types of attacks between VMs running simultaneously on the same hardware. Also, the VMM becomes a target for new types of attacks. Once the VMM is compromised the whole system is compromised. Furthermore, persistent data that was previously stored locally on a physical machine or within protected network boundaries in a central database, must now be available to a VM running in a potentially hostile network. Hence, there must be means to protect stored data and make sure that plaintext data only is exposed to VMs which are authorized to have access to it.
A large amount of academic and industry research has been carried out in the area of IaaS or “cloud” storage security.
For example, the prior art cryptographic storage system CloudProof allows read/write access that achieves integrity, confidentiality, fork-consistency and freshness, along with capabilities to provide proofs of data tampering. Kamara et al. introduced CS2 in “CS2: A searchable cryptographic cloud storage system”, where in addition to the properties achieved in CloudProof, the cloud storage solution also achieves global integrity and scalable search. The latter is in particular achieved through the use of symmetric searchable encryption.
An IaaS cloud model may, e.g., use a so called OpenStack Nova architecture where a VM Management Client (VMMC) launches and controls VMs through well-defined API(s). From a security perspective, there are several problems. First, there must be means for the VMMC to have guarantees on that the VM instance not will be launched on an adverse host (wrongly configured or deliberately misconfigured host software/hardware platform).
Second, VM image integrity must be guaranteed prior to VM instance launch. These two conditions can be satisfied through alternative methods, as, e.g., implemented in CloudProof as well as in other prior art techniques using Trusted Computing Technologies as defined by the Trusted Computing Group (TCG) in combination with well-designed protocols for VM launch and migration.
However, these methods and protocols do not address the problem of how a VM instance (once it has been launched or migrated) obtains secure access to sensitive persistent data it is potentially dependent on. In particular, there should be means to protect both confidentiality and integrity of sensitive data during storage, and only allow authorized VM instances to have access to the plaintext representation of the data. While protection of data can be achieved through encryption and integrity protection, Message Authentication Codes (MAC) algorithms, the cryptographic keys used for encryption and MAC calculations must be available to the VM instance whenever it requires the data. Furthermore, cryptographic key handling schemes should minimize VMMC involvement in order to minimize the risks of mismanagement or client compromise.